package util;


import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import database.DatabaseAdapter;
import android.content.ContentValues;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

@SuppressWarnings("unused")
public class FileUtil {
	
	public static void createFoldersNotExits(String foldername ){
		File folder = new File(foldername);
		 while(!folder.exists()){
			 System.out.println("into create folder::"+foldername);
			 folder.mkdirs();
	        }
	}
	
	public static void createFileNotExits(String filename ){
		File file = new File(filename);
		 while(!file.exists()){
				try {
					System.out.println("into create file"+filename);
					createFoldersNotExits(file.getParent());
						file.createNewFile();
				} catch (IOException e) {
						// TODO Auto-generated catch block
						LogFile.appendLog("error create File:"+filename+"  :"+e.getMessage());
				}
	        }
	}
	
	public static void deleteFile(String filename){
		File file = new File(filename);
		if(file.exists()){
			while (file.delete()){
				
			}
		}
		
	}
	
	public static void copyFolder(File src, File dest)
	    	throws IOException{
	 
	    	if(src.isDirectory()){
	 
	    		//if directory not exists, create it
	    		if(!dest.exists()){
	    		   dest.mkdir();
	    		   //System.out.println("Directory copied from "+ src + "  to " + dest);
	    		}
	 
	    		//list all the directory contents
	    		String files[] = src.list();
	 
	    		for (String file : files) {
	    		   //construct the src and dest file structure
	    		   File srcFile = new File(src, file);
	    		   File destFile = new File(dest, file);
	    		   FileUtil.createFoldersNotExits(destFile.getParent());
	    		   //recursive copy
	    		   copyFolder(srcFile,destFile);
	    		}
	 
	    	}else{
	    		//if file, then copy it
	    		//Use bytes stream to support all file types
	    		InputStream in = new FileInputStream(src);
	    	        OutputStream out = new FileOutputStream(dest); 
	 
	    	        byte[] buffer = new byte[1024];
	 
	    	        int length;
	    	        //copy the file content in bytes 
	    	        while ((length = in.read(buffer)) > 0){
	    	    	   out.write(buffer, 0, length);
	    	        }
	 
	    	        in.close();
	    	        out.close();
	    	        //System.out.println("File copied from " + src + " to " + dest);
	    	}
	    }
	

	public static void writeFile(String str,File file) {
		try{
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, true),"UTF-8"));
		bw.newLine();
		bw.write(str);
		bw.close();
		}catch (IOException ex){
			ex.printStackTrace();
		}
	}
	
	public static void writeNewFile(String str,File file) {
		try{
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file),"UTF-8"));
		bw.newLine();
		bw.write(str);
		bw.close();
		}catch (IOException ex){
			ex.printStackTrace();
		}
	}	
	

	
	
		
	
}
